package com.itheima.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

/**
 *  PropertySource 告诉spring框架 我们配置文件在哪
 */
@PropertySource("classpath:db.properties")
public class DatasourceConfig {

    @Value("${jdbc.username}")
    private String a1;
    @Value("${jdbc.password}")
    private String a2;
    @Value("${jdbc.url}")
    private String a3;
    @Value("${jdbc.driverClassName}")
    private String a4;

    /**
     * spring框架读取该配置类的所有方法 自行检测 方法上是否包含!!! @bean注解
     *
     * @bean注解 有属性name属性 就是为了放到容器当中 有一个名字
     * 一般情况 我们压根不起名 因为
     * 第一: 默认名字  方法名字
     * 第二: 一般都是根据类型注入的
     *
     *
     * @return
     */
    @Bean
    public DataSource datasource(){
        DruidDataSource dataSource = new DruidDataSource();



        dataSource.setUsername(a1);
        dataSource.setPassword(a2);
        dataSource.setUrl(a3);
        dataSource.setDriverClassName(a4);

        return dataSource;
    }
}
